From 8b68a742d175f77a4ec7a49b9311da971af136a0 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Wed, 3 Feb 2016 11:01:36 +0100 Subject: [PATCH] follow up to 2a507b91c138f6cf8310b22ff0d4f774a29f5d3b --- gui/kivy/main_window.py | 3 ++- lib/commands.py | 10 +--------- lib/wallet.py | 9 +++++---- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py index a09d4a52d..d898ae266 100644 --- a/gui/kivy/main_window.py +++ b/gui/kivy/main_window.py @@ -453,7 +453,8 @@ class ElectrumWindow(App): def get_max_amount(self): inputs = self.wallet.get_spendable_coins(None) - amount, fee = self.wallet.get_max_amount(self.electrum_config, inputs, None) + addr = str(self.send_screen.screen.address) or self.wallet.dummy_address() + amount, fee = self.wallet.get_max_amount(self.electrum_config, inputs, addr, None) return format_satoshis_plain(amount, self.decimal_point()) def format_amount(self, x, is_diff=False, whitespaces=False): diff --git a/lib/commands.py b/lib/commands.py index 35d98a9ae..a6bebd012 100644 --- a/lib/commands.py +++ b/lib/commands.py @@ -394,18 +394,10 @@ class Commands: final_outputs = [] for address, amount in outputs: address = self._resolver(address) - #assert self.wallet.is_mine(address) if amount == '!': assert len(outputs) == 1 inputs = self.wallet.get_spendable_coins(domain) - amount = sum(map(lambda x:x['value'], inputs)) - if fee is None: - for i in inputs: - self.wallet.add_input_info(i) - output = (TYPE_ADDRESS, address, amount) - dummy_tx = Transaction.from_io(inputs, [output]) - fee = self.wallet.estimate_fee(self.config, dummy_tx.estimated_size()) - amount -= fee + amount, fee = self.wallet.get_max_amount(self.config, inputs, address, fee) else: amount = int(COIN*Decimal(amount)) final_outputs.append((TYPE_ADDRESS, address, amount)) diff --git a/lib/wallet.py b/lib/wallet.py index 63d2048c5..d1fe0b92c 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -655,15 +655,16 @@ class Abstract_Wallet(PrintError): return coins def dummy_address(self): + print "dummy" return self.addresses(False)[0] def get_max_amount(self, config, inputs, recipient, fee): sendable = sum(map(lambda x:x['value'], inputs)) - for i in inputs: - self.add_input_info(i) - outputs = [(TYPE_ADDRESS, recipient, sendable)] - dummy_tx = Transaction.from_io(inputs, outputs) if fee is None: + for i in inputs: + self.add_input_info(i) + outputs = [(TYPE_ADDRESS, recipient, sendable)] + dummy_tx = Transaction.from_io(inputs, outputs) fee = self.estimate_fee(config, dummy_tx.estimated_size()) amount = max(0, sendable - fee) return amount, fee