speedup fee computation when collecting small inputs

This commit is contained in:
ThomasV 2015-08-15 10:02:47 +02:00
parent 8a3e5032b1
commit 6232a0b76c
1 changed files with 3 additions and 2 deletions

View File

@ -893,9 +893,10 @@ class Abstract_Wallet(object):
fee_per_kb = self.fee_per_kb(config) fee_per_kb = self.fee_per_kb(config)
amount = sum(map(lambda x:x[2], outputs)) amount = sum(map(lambda x:x[2], outputs))
total = fee = 0 total = 0
inputs = [] inputs = []
tx = Transaction.from_io(inputs, outputs) tx = Transaction.from_io(inputs, outputs)
fee = fixed_fee if fixed_fee is not None else 0
# add old inputs first # add old inputs first
for item in coins: for item in coins:
v = item.get('value') v = item.get('value')
@ -903,7 +904,7 @@ class Abstract_Wallet(object):
self.add_input_info(item) self.add_input_info(item)
tx.add_input(item) tx.add_input(item)
# no need to estimate fee until we have reached desired amount # no need to estimate fee until we have reached desired amount
if total < amount: if total < amount + fee:
continue continue
fee = fixed_fee if fixed_fee is not None else self.estimated_fee(tx, fee_per_kb) fee = fixed_fee if fixed_fee is not None else self.estimated_fee(tx, fee_per_kb)
if total >= amount + fee: if total >= amount + fee: