URI: 
       tmake_transaction: remove unneeded inputs - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ae957f37364d0c61f6658c6b877d5efbc5e3c5a4
   DIR parent 7becb28ec8a550f8749b0b1e80233c12b2498644
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Tue, 26 May 2015 09:05:44 +0200
       
       make_transaction: remove unneeded inputs
       
       Diffstat:
         M lib/wallet.py                       |      12 ++++++++++++
       
       1 file changed, 12 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -26,6 +26,7 @@ import time
        import math
        import json
        import copy
       +from operator import itemgetter
        
        from util import print_msg, print_error, NotEnoughFunds
        from util import profiler
       t@@ -856,6 +857,7 @@ class Abstract_Wallet(object):
                total = fee = 0
                inputs = []
                tx = Transaction.from_io(inputs, outputs)
       +        # add old inputs first
                for item in coins:
                    v = item.get('value')
                    total += v
       t@@ -865,6 +867,16 @@ class Abstract_Wallet(object):
                    if total >= amount + fee: break
                else:
                    raise NotEnoughFunds()
       +        # remove unneeded inputs
       +        for item in sorted(tx.inputs, key=itemgetter('value')):
       +            v = item.get('value')
       +            if total - v >= amount + fee:
       +                tx.inputs.remove(item)
       +                total -= v
       +                fee = fixed_fee if fixed_fee is not None else self.estimated_fee(tx)
       +            else:
       +                break
       +        print_error("using %d inputs"%len(tx.inputs))
        
                # change address
                if not change_addr: