mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-23 17:47:31 +00:00
CoinChooser: avoid NotEnoughFunds if zero buckets are sufficient
closes #5752 Adapted from @JeremyRand's fix
This commit is contained in:
parent
5773097b08
commit
5549f3adbe
2 changed files with 24 additions and 1 deletions
|
@ -349,7 +349,10 @@ class CoinChooserRandom(CoinChooserBase):
|
||||||
def bucket_candidates_any(self, buckets: List[Bucket], sufficient_funds) -> List[List[Bucket]]:
|
def bucket_candidates_any(self, buckets: List[Bucket], sufficient_funds) -> List[List[Bucket]]:
|
||||||
'''Returns a list of bucket sets.'''
|
'''Returns a list of bucket sets.'''
|
||||||
if not buckets:
|
if not buckets:
|
||||||
raise NotEnoughFunds()
|
if sufficient_funds([], bucket_value_sum=0):
|
||||||
|
return [[]]
|
||||||
|
else:
|
||||||
|
raise NotEnoughFunds()
|
||||||
|
|
||||||
candidates = set()
|
candidates = set()
|
||||||
|
|
||||||
|
|
20
electrum/tests/test_coinchooser.py
Normal file
20
electrum/tests/test_coinchooser.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
from electrum.coinchooser import CoinChooserPrivacy
|
||||||
|
from electrum.util import NotEnoughFunds
|
||||||
|
|
||||||
|
from . import ElectrumTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class TestCoinChooser(ElectrumTestCase):
|
||||||
|
|
||||||
|
def test_bucket_candidates_with_empty_buckets(self):
|
||||||
|
def sufficient_funds(buckets, *, bucket_value_sum):
|
||||||
|
return True
|
||||||
|
coin_chooser = CoinChooserPrivacy()
|
||||||
|
self.assertEqual([[]], coin_chooser.bucket_candidates_any([], sufficient_funds))
|
||||||
|
self.assertEqual([[]], coin_chooser.bucket_candidates_prefer_confirmed([], sufficient_funds))
|
||||||
|
def sufficient_funds(buckets, *, bucket_value_sum):
|
||||||
|
return False
|
||||||
|
with self.assertRaises(NotEnoughFunds):
|
||||||
|
coin_chooser.bucket_candidates_any([], sufficient_funds)
|
||||||
|
with self.assertRaises(NotEnoughFunds):
|
||||||
|
coin_chooser.bucket_candidates_prefer_confirmed([], sufficient_funds)
|
Loading…
Add table
Reference in a new issue