tMerge branch 'master' into feature/label_sync - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit d1aacb60509339040f979c9291e6235d4125351d DIR parent bafac9dc83dd41c999fc52d88c4c8f352ff92e73 HTML Author: Maran <maran.hidskes@gmail.com> Date: Sat, 16 Mar 2013 23:40:34 +0100 Merge branch 'master' into feature/label_sync Diffstat: M lib/bitcoin.py | 24 +++++++++++++++++------- M lib/wallet.py | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) --- DIR diff --git a/lib/bitcoin.py b/lib/bitcoin.py t@@ -805,6 +805,7 @@ class Transaction: # return the balance for that tx is_send = False is_pruned = False + is_partial = False v_in = v_out = v_out_mine = 0 for item in self.inputs: t@@ -818,7 +819,9 @@ class Transaction: else: v_in += value else: - is_pruned = True + is_partial = True + + if not is_send: is_partial = False for item in self.outputs: addr, value = item t@@ -826,11 +829,7 @@ class Transaction: if addr in addresses: v_out_mine += value - if not is_pruned: - # all inputs are mine: - fee = v_out - v_in - v = v_out_mine - v_in - else: + if is_pruned: # some inputs are mine: fee = None if is_send: t@@ -838,7 +837,18 @@ class Transaction: else: # no input is mine v = v_out_mine - + + else: + v = v_out_mine - v_in + + if is_partial: + # some inputs are mine, but not all + fee = None + is_send = v < 0 + else: + # all inputs are mine + fee = v_out - v_in + return is_send, v, fee def as_dict(self): DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -182,7 +182,7 @@ class Wallet: return s[0] == 1 def get_master_public_key(self): - return self.sequences[0].master_public_key + return self.config.get("master_public_key") def get_address_index(self, address): if address in self.imported_keys.keys():