Browse Source

Avoid index-out-of-range

Also add sanity assertion
283
Neil Booth 9 years ago
parent
commit
0a3d74de8f
  1. 1
      lib/coinchooser.py
  2. 6
      lib/wallet.py

1
lib/coinchooser.py

@ -67,6 +67,7 @@ class CoinChooserBase(PrintError):
amounts = self.change_amounts(tx, len(change_addrs), fee_estimator,
dust_threshold)
assert min(amounts) >= 0
assert len(change_addrs) >= len(amounts)
# If change is above dust threshold after accounting for the
# size of the change output, add it to the transaction.
dust = sum(amount for amount in amounts if amount < dust_threshold)

6
lib/wallet.py

@ -26,7 +26,7 @@ import json
import copy
from functools import partial
from util import PrintError, profiler
from util import NotEnoughFunds, PrintError, profiler
from bitcoin import *
from account import *
@ -897,6 +897,10 @@ class Abstract_Wallet(PrintError):
if type == 'address':
assert is_address(data), "Address " + data + " is invalid!"
# Avoid index-out-of-range with coins[0] below
if not coins:
raise NotEnoughFunds()
for item in coins:
self.add_input_info(item)

Loading…
Cancel
Save